# -*- coding: utf-8 -*-
"""
Created on Thu Aug 17 18:18:45 2023

@author: skunk69
"""

import json

chinese_name = u'汉区少数民族学生文化疏离感量表'
english_name = 'Questionnaire of Sense of Cultural Alienation on Minority Students Living in Han Nationality District'
abbreviation = 'QSCAMS'
category = u'家庭与人际关系量表'

outline = u"""综观国内外对文化疏离感的研究，可以看出文化疏离感还是一个没有系统和深入研究过的领域。我国是一个多民族国家，在我国进行文化疏离感的研究具有十分重要的意义。《汉区少数民族学生文化疏离感量表》是以刘曦、杨东等编制的大学生疏离感量表、青少年学生疏离感量表为基础编制的。该量表将文化疏离感分为文化孤立感、文化分离感、不和谐感和被控制感4个维度。"""

instruction = u"""请您仔细阅读下面的各项题目，并按您的实际情况作答，答案并无对错之分，请不要有任何顾虑。"""

with open('QSCAMS.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

items = {}
for key,line in enumerate(lines):
    _,value = line.strip().split('）',maxsplit=1)
    items[key+1] = value
    
reverse_items = [4,17,25,34,35,37]
scales = [u'文化孤立感',u'文化分离感',u'不和谐感',u'被控制感']
scales_items = [
    [1,2,4,5,6,7,8,12,13,14,15,25,26,30,31],# 文化孤立感
    [3,9,10,19,20,23,27,29,32,35,36],# 文化分离感
    [18,24,33,34,37],# 不和谐感
    [11,16,17,21,22,28],# 被控制感
    ]

# check scales_items
print(f'scale length={[len(l) for l in scales_items]}')

check = []
for l in scales_items:
    check = check+l
print(f'len(check)={len(check)}')

# complementary set
check_set = {i for i in sorted(check)}^{i for i in range(1,38)}
print(f'complementary set= {check_set}')

factors = []
factors_scales = []
rating = [u'完全符合',u'比较符合',u'不确定',u'比较不符合',u'完全不符合']
score_rules = list(range(5,0,-1))

contents = {
    'instruction':instruction,
    'items':items,
    'reverse_items':reverse_items,
    'scales':scales,
    'scales_items':scales_items,
    'factors':factors,
    'factors_scales':factors_scales,
    'rating':rating,
    'score_rules':score_rules       
    }

implementation = u"""《汉区少数民族学生文化疏离感量表》是一个自评量表。"""

reliability = u"""该量表的内部一致性系数、分半信度分别为0.92和0.74，具有较好的信度。"""
validity = u"""该问卷的项目来源于文献综述和开放式问卷调查整理后的结果，是对师生进行个别访谈和征求专家意见后形成的，且在正式问卷形成时，还做了小样本测试，请学生、老师和专家对问卷的项目进行了多次的审查和修改，因此，具有较好的内容效度。
通过探索性因素分析和验证性因素分析发现，该问卷的结构比较合理，基本符合理论假设。对各因素之间的相关进一步分析后发现，4个因子之间呈中等相关，各因子与总问卷呈高相关，说明该问卷的因子结构比较符合理论构想，构想效度比较好。"""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""首先将反向题目反向计分，然后将各维度题目相加得到各维度分，所有条目之和得到总分。
如果要衡量疏离感的高低，就把总分或维度分再除以总题项数或每个维度的题项数，求得总平均分和每个维度的平均分，再以平均分来判断疏离感的高低。如果平均分大于3分，就表示有一定程度的疏离感，而且分数越高，疏离感的程度越高，但最高分不高于5分。"""

applications = u"""该量表可以用来测查汉区少数民族学生文化疏离感状况，也可以用来进行相关研究。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)